Graphs provide a flexible data structure that facilitates fusion of disparate data sets. The popularity of graphs has shown a steady growth with the development of internet, cyber, and social networks. While graphs provide a flexible data structure, processing and analysis of large graphs remains a challenging problem. Successful implementation of graph analytics revolves around several key considerations: rapid data ingest and retrieval, scalable storage, and parallel processing.
Recently, NoSQL systems (also known as Not only SQL (Structured Query Language), such as HADOOP®, have become popular for storing big data; however these systems face several fundamental challenges that make analyzing desperate data sets difficult such as 1) lack of secondary indexing, which leads to poor performance of attribute queries; 2) lack of locality control, which can lead to unnecessary movement of data; and 3) lack of well-defined schema, which makes database maintenance challenging. More traditional relational databases, e.g., relational database management system (RDBMS)) may not share the problems identified for NoSQL, but face their own set of challenges when dealing with large data sets that cannot be handled by a single server, table structures may not be flexible enough to support new kinds of data easily, and RDBMSs may have poor parallelization & scalability.